
//
// !!!修改文件后调用 npm run buildJs 生成 global-utils-all.js
//

"use strict";

import { globalUtils } from './global-utils-common';
import { requireMoment } from './global-utils-dependencies';
import moment from 'moment/moment';

/* SOURCE-CODE-START */

/**
 * @memberof globalUtils
 * @description 解析日期
 * @param {string} text 
 * @returns {Date}
 */
globalUtils.parseDateWithZone = function (text) {
  if (globalUtils.isNullOrUndefined(text)) {
    return null;
  }

  requireMoment();
  var momentDate = moment(text, 'YYYY-MM-DDZ');
  var date = momentDate.toDate();

  return date;
};

/**
 * @memberof globalUtils
 * @description 解析日期时间
 * @param {string} text 
 * @returns {Date}
 */
globalUtils.parseDateTimeWithZone = function (text) {
  if (globalUtils.isNullOrUndefined(text)) {
    return null;
  }

  requireMoment();
  var momentDate = moment(text, moment.ISO_8601);
  var date = momentDate.toDate();

  return date;
};

/**
 * @memberof globalUtils
 * @description 格式化日期
 * @param {Date} date 
 * @returns {string}
 */
globalUtils.formatDateWithZone = function (date) {
  if (globalUtils.isNullOrUndefined(date)) {
    return null;
  }

  requireMoment();
  var momentDate = moment(date);
  var text = momentDate.format('YYYY-MM-DDZ');

  return text;
};

/**
 * @memberof globalUtils
 * @description 格式化日期时间
 * @param {Date} date 
 * @returns {string}
 */
globalUtils.formatDateTimeWithZone = function (date) {
  if (globalUtils.isNullOrUndefined(date)) {
    return null;
  }

  requireMoment();
  var momentDate = moment(date);
  var text = momentDate.toISOString();

  return text;
};

/**
 * @memberof globalUtils
 * @description 格式化日期
 * @param {Date} date 
 * @returns {string}
 */
globalUtils.formatYearDay = function (date) {
  if (globalUtils.isNullOrUndefined(date)) {
    return null;
  }

  requireMoment();
  var momentDate = moment(date);
  var text = momentDate.format('YYYY-MM-DD');

  return text;
};

/**
 * @memberof globalUtils
 * @description 格式化日期时间
 * @param {Date} date 
 * @returns {string}
 */
globalUtils.formatYearSecond = function (date) {
  if (globalUtils.isNullOrUndefined(date)) {
    return null;
  }

  requireMoment();
  var momentDate = moment(date);
  var text = momentDate.format('YYYY-MM-DD HH:mm:ss');

  return text;
};

/* SOURCE-CODE-END */

export { globalUtils };
